07 ROS2 rqt 工具使用与 AI 协同开发实战
ROS2 rqt 工具使用与 AI 协同开发实战
关联:索引
rqt 是 ROS2 官方可视化调试工具(插件式),可在一个界面中集成多种调试能力,核心优势是 “可视化、一站式”,能大幅提升调试效率。我们只需掌握 rqt_graph(节点关系)、rqt_console(日志查看)、rqt_plot(数据绘图)三个核心插件,就能满足日常调试需求。
1. rqt 工具安装与启动(基础必备)
-
安装指令(适配 ROS2 Humble):
sudo apt update && sudo apt install ros-humble-rqt ros-humble-rqt-common-plugins
验证安装:输入 rqt 回车,能打开 rqt 主界面即安装成功。
-
启动方式:
-
启动主界面(可自选插件):
rqt -
直接启动指定插件(开发常用):
rqt_graph # 节点关系图 rqt_console # 日志控制台 rqt_plot # 数据绘图 -
备用入口(推荐,避免出现 “找不到命令”):
rqt --standalone rqt_console rqt --standalone rqt_plot
或打开 rqt 后在菜单里选择:Plugins → Logging → Console / Plugins → Visualization → Plot
2. 核心插件使用场景与操作(重点)
| 插件名称 | 核心作用 | 常用操作 |
|---|---|---|
rqt_graph |
可视化展示节点、话题、服务的通信关系 | 1. 启动后自动刷新;2. 勾选 “Nodes only”/“Topics only” 筛选显示;3. 缩放 / 拖拽调整视图,导出关系图。 |
rqt_console |
查看 / 过滤节点运行日志(按级别/关键词) | 1. 按级别过滤(DEBUG/INFO/WARN/ERROR/FATAL);2. 按关键词过滤日志;3. 清空日志 / 保存日志到文件。 |
关键提醒:
- 启动 rqt 前需先激活 ROS2 环境(
source /opt/ros/humble/setup.bash),并运行待调试的节点。 - 如需动态修改节点日志级别,可使用 rqt 的 Logger Level 插件(Plugins → Logging → Logger Level / rqt_logger_level)。
- rqt_plot 仅支持数值型话题(如
std_msgs/msg/Float32、geometry_msgs/msg/Twist的子字段),不支持图像等非数值话题。
1. 分步操作(抄好指令,标清步骤)
-
步骤 0:环境配置与节点启动
# 激活环境 source /opt/ros/humble/setup.bash # 启动小海龟节点(作为调试目标) ros2 run turtlesim turtlesim_node # 新开终端启动海龟控制节点(可选) ros2 run turtlesim turtle_teleop_key -
步骤 1:rqt_graph 查看节点关系
rqt_graph
操作:
-
查看
/turtlesim与/teleop_turtle节点的通信关系; -
勾选 “Hide debug”“Nodes only”,简化视图;
-
验证:确认
/turtle1/cmd_vel话题连接两个节点。
-
步骤 2:rqt_console 查看日志
rqt --standalone rqt_console
操作:
-
操作海龟移动,查看节点输出的 INFO 级日志;
-
筛选 ERROR 级日志(无则模拟:故意输入错误指令让节点报错);
-
保存日志到本地(菜单栏 File → Save Log)。
-
步骤 3:rqt_plot 绘制数据曲线
rqt --standalone rqt_plot
操作:
- 在输入框填写
/turtle1/cmd_vel/linear/x,回车绘制曲线; - 按方向键控制海龟移动,观察曲线变化;
- 调整绘图时间范围(默认 10s),保存曲线截图。
2. 实操小规范(必记,避免报错)
- rqt 界面卡顿时,先关闭工具,重启节点后重新打开 rqt。
- 用 rqt_plot 绘图时,先通过
ros2 topic type确认话题类型,避免输入非数值字段。
- 快速回顾(举手回答):rqt_graph 的核心作用是什么?rqt_console 如何筛选错误日志?rqt_plot 支持哪种类型的话题?
AI 大模型(如 ChatGPT、文心一言)是 ROS2 开发的 “高效助手”,能覆盖 “脚本生成、代码编写、问题排查、知识点总结” 等全流程,核心是 “精准提问 + 人工验证”。
1. AI 协同开发核心场景(按优先级记)
| 应用场景 | 提问示例(精准化) | 验证要点 |
|---|---|---|
| 工作空间创建脚本 | “生成 ROS2 Humble 工作空间创建 + 测试功能包(Python)的脚本,包含 colcon build 编译步骤” | 1. 脚本目录路径是否正确;2. 编译参数(--symlink-install)是否添加;3. 能正常执行无报错。 |
| 测试节点代码编写 | “生成 ROS2 Humble Python 发布节点代码,发布 std_msgs/msg/String 类型话题,话题名 test_ai_topic” | 1. 节点导入包是否完整;2. 话题类型 / 名称是否正确;3. 能编译运行并发布消息。 |
| 调试问题排查 | “ROS2 节点运行提示‘找不到功能包’,已执行 source install/setup.bash,排查原因并给出解决方案” | 1. 解决方案是否贴合报错场景;2. 操作步骤可复现;3. 能解决实际问题。 |
| 知识点总结 / 命令清单 | “总结 ROS2 rqt 工具核心插件的使用场景与实操步骤,适配机械臂小组项目” | 1. 内容无错误;2. 贴合小组项目场景;3. 步骤清晰可落地。 |
2. AI 生成内容的验证与优化(核心原则)
- 验证:先 “小步试跑”(如先执行脚本的目录创建步骤,再编译),再 “完整验证”(执行全脚本),重点检查语法、路径、参数的正确性。
- 优化:AI 生成内容可能存在 “通用化、细节缺失” 问题,需结合项目需求调整(如修改话题名、添加小组项目依赖包、补充日志输出)。
模板 A:工作空间 + Python 包 + 发布节点(保底可跑)
你是 ROS2 助教。请为 ROS2 Humble(Ubuntu 22.04)生成一套最小可运行的 Python 发布节点示例,要求:
1)工作空间:~/ros2_ws,src 下创建包:gX_demo(X 替换成组号)
2)节点:node 名 gX_pub,发布 std_msgs/msg/Float32 到话题 /gX/value,频率 10Hz
3)必须包含:package.xml 依赖、setup.py 入口点、源代码、构建与运行命令
4)验收方式:ros2 topic list / ros2 topic echo / rqt_graph / rqt_console / rqt_plot(至少给出 3 条)
请按“步骤清单 + 关键文件内容 + 命令”输出,命令可直接复制执行。
模板 B:发布 + 订阅成对节点(用于 rqt_graph 连通证据)
你是 ROS2 助教。ROS2 Humble 下请生成一个 Python 示例包 gX_pair,包含:
1)发布节点 gX_pub:发布 std_msgs/msg/String 到 /gX/chatter,1Hz
2)订阅节点 gX_sub:订阅 /gX/chatter,并在日志中打印收到的内容
3)给出完整构建与运行命令,以及如何用 rqt_graph 证明两节点连通、用 rqt_console 查看日志
模板 C:专门用于 rqt_plot 的数值话题(推荐)
你是 ROS2 助教。ROS2 Humble 下请给出一个 Python 发布节点,持续发布 std_msgs/msg/Float32 到 /gX/value:
1)数据应周期性变化(例如正弦波或递增),便于 rqt_plot 看到曲线
2)给出运行命令,以及 rqt_plot 输入框应该填写的字段
模板 D:报错排查(让学生学会“贴证据问 AI”)
你是 ROS2 Humble 调试专家。请根据以下信息定位问题并给出可复现的修复步骤:
1)我的目标:运行命令:<粘贴你运行的 ros2 run / colcon build 命令>
2)我的环境:ROS2 Humble,是否 source 了 /opt/ros/humble/setup.bash:<是/否>
3)报错全文:<粘贴终端报错>
4)我已尝试过:<粘贴你做过的命令与结果>
请按“原因 → 验证方法 → 修复步骤(命令)→ 预防建议”回答。
运行证据(至少满足 1 条):
ros2 node list能看到你的节点名ros2 topic list能看到你们组的话题(如/gX/value或/gX/chatter)ros2 topic echo /gX/value或ros2 topic echo /gX/chatter能看到持续输出
rqt 证据(至少满足 2 条):
rqt_graph:看到节点与话题的连接(发布/订阅关系清晰)rqt_console:能看到节点日志,并演示一次按级别/关键词过滤rqt_plot:能画出数值话题曲线(如/gX/value/data或/turtle1/cmd_vel/linear/x)
常用打开方式(避免命令找不到):
rqt_graph
rqt --standalone rqt_console
rqt --standalone rqt_plot
5. 演示案例:AI 生成测试节点代码并优化(教师投屏一次即可)
- 步骤 1:向 AI 提问(复制示例),获取生成的代码。
- 步骤 2:验证代码 —— 检查导入包、话题类型、节点初始化是否正确。
- 步骤 3:人工优化 —— 添加日志输出、修改话题名为小组项目专属名称、补充 setup.py 入口点配置。
- 步骤 4:编译运行 —— 用 colcon build 编译,用 rqt 工具验证节点运行 / 话题发布状态。
1. 小组任务要求
- 确定 2 个 AI 协同开发场景(如生成工作空间脚本、编写测试节点、排查编译报错),向 AI 精准提问并获取内容。
- 验证 AI 生成内容:执行脚本 / 编译代码,记录报错信息并排查。
- 人工优化:针对 AI 内容的问题(如路径错误、依赖缺失)进行修改,确保功能包能正常编译运行。
- 用 rqt 工具调试:用 rqt_graph 查看节点关系、rqt_console 查看日志、rqt_plot 绘制数据曲线(如有数值话题)。
| 项目 | 内容(填写) |
|---|---|
| 组号(gX) | |
| 选择的任务 | 保底 / 进阶 |
| 话题名 | |
| AI 提示词模板 | A / B / C / D(或自定义) |
| 生成的关键命令 | |
| 遇到的报错(如有) | |
| 你们的修复动作 |
2. 指导要点
- 检查学生 AI 提问的精准度(是否包含 “ROS2 版本 + 场景 + 项目类型”)。
- 引导学生 “小步验证” AI 生成内容,避免一次性执行复杂脚本导致排查困难。
- 提醒学生结合 rqt 工具验证节点运行状态,确保 AI 生成的代码 / 脚本落地可用。
| 维度 | 达标要点 | 分值 |
|---|---|---|
| 验证与修复 | 有小步验证过程,能根据报错修改并跑通 | 35 |
| rqt 证据 | graph + console 证据齐全(plot 加分) | 25 |
| 表达与协作 | 分工清晰,60 秒汇报有条理 | 15 |
- 模块核心知识点复盘:
- rqt 工具:掌握 graph/console/plot 三大插件,实现可视化调试;
- AI 协同开发:精准提问→生成内容→验证→优化,建立开发闭环;
- 工具链整合:colcon 编译 + ros2 命令行 + rqt 调试 + AI 提效。
- 产业项目关联:
- 工业场景中,工程师常用 rqt 快速定位节点通信问题,用 AI 生成标准化脚本 / 代码提升开发效率;
- “AI 辅助 + 人工验证” 是产业级机器人开发的主流模式,既能提效又能保证代码可靠性。
- 后续学习方向:
- 结合小组产业项目,用本模块所学完成功能包的搭建、调试与优化;
- 持续积累 AI 精准提问技巧,将 rqt 调试融入日常开发流程。
课后作业(建议:个人必做 + 小组可选加分,截止时间:2026年3月15日12点前)
与项目工坊的关系说明(避免混淆):
- 课后作业:以个人为单位提交一次“可复现的闭环记录”,目的是保证每位同学都亲手跑通并能解释清楚。
- 允许复用:个人作业可以复用项目工坊中的同一组代码/话题/证据,但每个人必须独立完成验证过程与反思小结。
个人必做(每人提交 1 份,建议控制在 2–4 页):
- 证据截图(至少 3 张):
ros2 topic echo或终端运行日志:能证明你的节点在发布/订阅;rqt_graph:能证明节点与话题连接关系;rqt_console:能看到日志,并体现一次过滤(级别或关键词)。- 如有数值话题:
rqt_plot曲线截图(加分项)。
- AI 协同记录(至少 2 次):
- 生成类:用于生成工作空间/节点/脚本的提示词与结果要点;
- 排错类:粘贴一次真实报错与向 AI 提问的排查过程(可小问题,如话题名不一致、未 source、依赖缺失等)。
- 反思小结(150–300 字):
小组可选加分(不强制提交):
评分建议(100 分):
- 证据完整性(40):运行证据 + rqt_graph + rqt_console 齐全
- AI 协同与验证(40):提示词带约束、小步验证清晰、有实际修正
- 表达与规范(20):结构清晰、命名规范、结论可复现
提交格式要求(个人必做):
- 仅提交 1 个 PDF:
学号_姓名_ROS2rqt_AI作业.pdf - PDF 内按顺序编排截图并配 1–2 行说明,不要求额外提交工作空间压缩包
AI 使用规范(建议写在里,避免误解):
- 允许使用 AI,但必须在 PDF 中保留提示词与关键输出;
- 职业认知:rqt 工具是 ROS2 调试的工业级标配,AI 是新一代机器人开发的核心提效工具,掌握 “工具 + AI” 的复合能力,是未来进入机器人、自动驾驶等领域的核心竞争力。
- 开发理念:AI 能大幅降低重复开发成本,但人工验证与优化是保证项目质量的底线,严谨、规范的开发习惯,是职业工程师的必备素养。
- 小组协作:鼓励小组共享 AI 生成的优质内容、rqt 调试技巧,通过协作完成更复杂的产业项目,体会团队开发的价值。